<?php
/**
 * File Name...: index.php
 * Framework...: Blackbird Framework
 * Author......: KnKill, 2010 (c) KnKill Corporation
 */

 
 
// Если поддержка БД не нужна, смело переключаем в False
define ('USE_DB', true);
// Если Смарти не нужен, смело переключаем в False
define ('USE_SMARTY', true);
 
// Обработчик ошибок
error_reporting(E_ALL & ~(E_STRICT|E_NOTICE));


/////////////////////////////////
define ('DS', DIRECTORY_SEPARATOR);                  // Разделитель директорий
define ('P_ROOT', realpath(dirname(__FILE__)) . DS); // Абсолютный путь к этой диретории
define ('P_HLP', P_ROOT . 'helpers' . DS);           // Абсолютный путь к хелперам
define ('P_LIB', P_ROOT . 'libraries' . DS);         // Абсолютный путь к библиотекам
define ('P_APP', P_ROOT . 'application');            // Абсолютный путь к директории с приложением

//////////////////////////////////

define ('APP_URL', 'http://c39.dnepro.net/forthcoming'); // Адрес сайта (хост) (без слеша в конце)
define ('STATIC_URL', APP_URL . '/static');              // Путь к статике
define ('CSS_URL', STATIC_URL . '/css');                 // Пусть к таблицам стилей (CSS)
define ('JS_URL',  STATIC_URL . '/js');                  // Путь к скриптам (JS)
define ('IMG_URL', STATIC_URL . '/img');                 // Путь к изображениям
//////////////////////////////////


// Подгружаем класс для подгрузки классов (тафтология, ёпт)
require_once P_ROOT . 'core' . DS . 'loader.php';

// Подгружаем нужные либы
loader::library('router', 'registry', 'input', 'smarty');

// Поддержка БД
if (USE_DB) {
    $db = new PDO('mysql:host=localhost;dbname=forthcoming;charset=UTF-8', 'root', '');
    Registry::Set('db', $db);
}

// Поддержка Smarty
if (USE_SMARTY) {
    $smarty = new Smarty();
    $smarty->template_dir = P_APP . DS . 'views';
    $smarty->compile_dir  = P_APP . DS . 'views' . DS . '_compiled';
    $smarty->cache_dir    = P_APP . DS . 'views' . DS . '_cache';
    $smarty->config_dir   = P_APP . DS . 'views' . DS . 'configs';
    registry::set('view', $smarty);
}

// Базовый контроллер
require_once P_ROOT . 'core' . DS . 'predefined.php';
require_once P_ROOT . 'core' . DS . 'base_controller.php';

// Поддержка роутинга
$router = new router();
$router->set_path(P_ROOT . 'application' . DS . 'controllers');
$router->Go();